Synthesis subband filter process and apparatus

ABSTRACT

A synthesis subband filter apparatus is provided. The apparatus is used for processing 18 sets of signals which each includes 32 subband sampling signals in accordance with a specification providing 512 window coefficients. The apparatus includes a processor for processing the 18 sets of signals in sequence. The processor further includes a converting module and a generating module. The converting module is used for converting the 32 subband sampling signals of the set of signals being processed into 32 converted vectors by use of 32-points discrete cosine transform (DCT), and writing the 32 converted vectors into 512 default vectors with a first-in, first-out queue. The generating module is used for generating 32 pulse code modulation (PCM) signals, relative to the set of signals being processed according to a set of synthesis formulae proposed in this invention.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to synthesis subband filter processes andapparatuses, in particular, this invention is related to the synthesissubband filtering processes and apparatuses in an audio decoder.

2. Description of the Prior Art

The MPEG (Motion Pictures Experts Group) audio signal specificationprovides standard encoding/decoding algorithms for audio signals. Thealgorithms in the MPEG specification can significantly reduce therequirement for data transmitting bandwidths and provide audio signalswith low distortions. At present, the encoding/decoding algorithms inthe MPEG specification are divided in to three layers: Layer I, LayerII, and Layer III.

The encoding algorithm in the MPEG specification first divides anoriginal audio signal into 32 subband data with an analysis subbandfilter. Subsequently, based on psychoacoustic models simulating humanears, the encoding algorithm provides signals in different subband withdifferent encoding bit to quantize the signals. After being framed, thequantized signals can then be stored or transmitted.

The decoding algorithm in the MPEG specification is reverse to the stepsin the encoding algorithm. The encoded data is first frame unpacked and32 subband data are then generated with re-quantization. At last, asynthesis subband filter can recover the original audio signal.

Compared with the encoding/decoding algorithms in MPEG-1 Layer I andLayer II specifications, those in the MPEG-1 Layer III (MP3)specification have two more steps. The first one is performing modifieddiscrete cosine transform (MDCT) to the signals outputted from theanalysis subband filter. The second one is performing the Huffinanencoding to quantized signals so as to achieve an optimized compressionratio. Correspondingly, the decoding algorithm in the MP3 specificationhas a step of Huffman decoding and a step of inverse modified discretecosine transform, (IMDCT).

Synthesis subband filtering is the last step of the decoding algorithmin the MP3 specification. As mentioned in “Coding of moving pictures andassociated audio for digital storage media at up to about 1.5 M bits/s”on ISO/IEC 11172-3 Information Technology, the step of synthesis subbandfiltering in this prior art sequentially converts 18 sets of subbandsampling signals after IMDCT into 18 sets of pulse code modulation (PCM)signals; thus, the original audio signal is recovered. Please refer toFIG. 1, which illustrates the flowchart of synthesis subband filteringin this prior art.

Each set of the 18 sets of subband sampling signals after IMDCTrespectively includes 32 subband sampling signals. Step S11 is inputtingthe 32 subband sampling signals being processed. Step S12 is convertingthe 32 subband sampling signals into 64 converted vectors by matrixing.Step S13 is writing the 64 converted vectors into 1024 default vectors(V) with a first-in, first-out queue. Step S14 is generating a set offirst intermediate vectors (U) based on the 1024 default vectors (V).Step S15 is multiplying the set of first intermediate vectors (U) by the512 window coefficients provided by the MPEG specification to generate512 second intermediate vectors (W). Step S16 is generating 32 PCMsignals based on the 512 second intermediate vectors (W).

As mentioned in “Fast Subband Filtering in MPEG Audio Coding” reportedby Konstantinides and Konstantinos, etc. on IEEE Signal ProcessingLetters 1, 2, Feb. 1994 26-29, 1994, this prior art proposes a methodfor converting the 32 subband sampling signals into 32 converted vectorsby 32-points discrete cosine transform (DCT). That is to say, thematrixing method in step S12 is replaced with 32-points DCT. With theproposed method, the number of converted vectors can be half reduced.The 1024 default vectors (V) are also reduced to 512 default vectors. Inthis way, the buffer space for storing the default vectors (V) issmaller.

As described above, step S14 through step S16 are generating PCM signalsbased on the default vectors (V) and the 512 window coefficientsprovided by the MPEG specification. According to prior arts, beforegenerating the PCM signals, the default vectors (V) must be convertedtwice, respectively to the first intermediate vectors (U) and the secondintermediate vectors (W). However, the conversions not only arecomplicated, but also require a large number of hardware resources, andtakes much time.

Therefore, this invention provides a process and an apparatus forsynthesis subband filtering. The process and apparatus according to thisinvention simplifies the generation of PCM signals into relationsbetween default vectors V and window coefficients D. The problem ofcomplicated calculation in prior arts can thus be solved.

SUMMARY OF THE INVENTION

One main purpose of this invention is providing a synthesis subbandfilter process. The process is performed on 18 sets of signals whicheach include 32 subband sampling signals. The subband sampling signalsare in accordance with a specification providing 512 window coefficients(D₀˜D₅₁₁).

According to one preferred embodiment of this invention, the 18 sets ofsignals are sequentially processed. The 32 subband sampling signals inthe set of signals being processed are first converted into 32 convertedvectors (V″) by use of 32-points discrete cosine transform (DCT). The 32converted vectors are then written into 512 default vectors (V″₀˜V″₅₁₁)with a first-in, first-out queue. Subsequently, 32 pulse code modulation(PCM) signals (S₀˜S₃₁) are generated according to the 512 defaultvectors (V″₀˜V″₅₁₁), the specification and the following formulae:$\quad{S_{16} = {\sum\limits_{{i = 1},3,5,\ldots\quad,15}{\left( {- V_{32i}^{''}} \right)*D_{{32i} + 16}}}}$${S_{j} = {{\sum\limits_{{i = 0},2,4,{\ldots\quad 14}}{V_{{32i} + 16 + j}^{''}*D_{{32i} + j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + j}}}}}\quad$  for  j = 0 ∼ 15$S_{32 - j} = {{\sum\limits_{{i = 0},2,4,{\ldots\quad 14}}{\left( {- V_{{32i} + 16 + j}^{''}} \right)*D_{{32i} + 32 - j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + 32 - j}}}}$  for  j = 1 ∼ 15.

wherein i andj are both integer indexes ranging from 0 to 15.

The inventor of this invention also summarizes the relationship of the512 window coefficients as: D_((512−k))=−D_(k), wherein k is an integerindex ranging from 1 to 255. With this symmetric relationship, thememory space for storing the window coefficients can be reduced as halfof that in prior arts. Besides, based on the above formulae, the onlydifferences between the two sets of window coefficients for generatingthe PCM signals S_(j) and S_(32−j) (j=1˜15) are arrangement sequencesand positive/negative signs. If S_(j) and S_(32−j) are calculatedsimultaneously, the frequency of accessing the window coefficients canbe half reduced. Furthermore, the default vectors corresponding to thePCM signals S_(j) and S_(32−j) (j=1˜15) are the same. Thus,simultaneously calculating S_(j) and S_(32−j) can also reduce thefrequency of accessing the default vectors.

The 512 default vectors are stored in a buffer. According to the MPEG-1Layer III standard, pre-shifting must be performed whenever convertedvectors are written into the default vectors so as to conform to afirst-in, first-out principle. To prevent from massively memoryshifting, this invention proposes a buffer with a rotating index basedon the above formulae.

The advantage and spirit of the invention may be understood by thefollowing recitations together with the appended drawings.

BRIEF DESCRIPTION OF THE APPENDED DRAWINGS

FIG. 1 illustrates the flowchart of synthesis subband filtering in theprior art.

FIG. 2 is the flowchart of the synthesis subband filter processaccording to one preferred embodiment of this invention.

FIG. 3 illustrates the operation of the buffer with a rotating index.

FIG. 4 is the block diagram of the synthesis subband filter apparatusaccording to one preferred embodiment of this invention.

DETAILED DESCRIPTION OF THE INVENTION

One main purpose of this invention is providing a synthesis subbandfilter process. The process is performed on 18 sets of signals whicheach include 32 subband sampling signals. The subband sampling signalsare in accordance with a specification providing 512 window coefficients(D₀˜D₅₁₁). In actual applications, the specification can be the MPEG-1Layer III standard.

Please refer to FIG. 2, which illustrates the flowchart of the synthesissubband filter process according to one preferred embodiment of thisinvention. This process sequentially processes the 18 sets of signalsand performs step S21 through step S24 for the set of signals beingprocessed. Step S21 is inputting the 32 subband sampling signals beingprocessed. Step S22 is converting the 32 subband sampling signals into32 converted vectors by use of 32-points discrete cosine transform(DCT). Step S23 is writing the 32 converted vectors into 512 defaultvectors (V″₀˜V″₅₁₁) with a first-in, first-out queue. Step S24 isgenerating 32 pulse code modulation (PCM) signals (S₀˜S₃₁) according tothe formulae proposed in this invention.

The following paragraph will explain why step S12 in FIG. 1 can bereplaced with step S22 in FIG. 2.

Step S12 is converting the 32 subband sampling signals (S_(k), k=0˜31)into 64 converted vectors (V_(i), i=0˜63) by matrixing according to theMPEG-1 Layer III standard. The matrixing equation is represented as:$\begin{matrix}{{V_{i} = {\sum\limits_{k = 0}^{31}{N_{i,k}*S_{k}}}},{{{for}{\quad\quad}i} = {\left. 0 \right.\sim 63}},} & \left( {{Equation}\quad 1} \right)\end{matrix}$

wherein$N_{i,k} = {\cos\left\lbrack {\frac{\pi}{64}\left( {{2k} + 1} \right)\left( {i + 16} \right)} \right\rbrack}$and is a matrix provided in the MPEG-1Layer III standard.

A set of vectors V′_(i) (i=0˜63) can be defined to replace V_(i):$\begin{matrix}{V_{i}^{\prime} = \left\{ \begin{matrix}V_{i + 48} & {for} & {{i = 0},1,\ldots\quad,15} \\V_{i - 16} & {for} & {{i = 16},17,{{\ldots 63}.}}\end{matrix} \right.} & \left( {{Equation}\quad 2} \right)\end{matrix}$

Based on the definition of N_(ik) and Equation 2, Equation 1 can bere-written as Equation 3 and Equation 4: $\begin{matrix}{{V_{i}^{\prime} = {{\sum\limits_{k = 0}^{31}{{\cos\left\lbrack {\frac{\pi}{64}\left( {{2k} + 1} \right)\left( {i + 64} \right)} \right\rbrack}*S_{k}\quad{for}\quad i}} = {\left. 0 \right.\sim 15}}},} & \left( {{Equation}\quad 3} \right) \\{{V_{i}^{\prime} = {\sum\limits_{k = 0}^{31}{{\cos\left\lbrack {\frac{\pi}{64}\left( {{2k} + 1} \right)i} \right\rbrack}*S_{k}}}},{{{for}\quad i} = {\left. 16 \right.\sim 63.}}} & \left( {{Equation}\quad 4} \right)\end{matrix}$

V′_(i) (i=0˜63) has been known as conformed to the relation of:$\left\{ \begin{matrix}{V_{32 + j}^{\prime} = {- V_{32 - j}^{\prime}}} & {for} & {{j = 1},2,\ldots\quad,16} \\{V_{32 + j}^{\prime} = V_{32 - j}^{\prime}} & {for} & {{j = 17},18,\ldots\quad,31.}\end{matrix}\quad \right.$

Another set of vectors V″_(i) (i=0˜31) can be further defined to replaceV′_(i): $\begin{matrix}\left\{ \begin{matrix}{V_{i}^{''} = {- V_{i}^{\prime}}} & {for} & {{i = 0},1,\ldots\quad,15} \\{V_{i}^{''} = V_{i}^{\prime}} & {for} & {{i = 16},17,\ldots\quad,31.}\end{matrix} \right. & \left( {{Equation}\quad 6} \right)\end{matrix}$

Based on Equation 5 and Equation 6, Equation 3 and Equation 4 can bere-written as: $\begin{matrix}{V_{i}^{''} = {{\sum\limits_{k = 0}^{31}{{\cos\left\lbrack {\frac{\pi}{64}\left( {{2k} + 1} \right)i} \right\rbrack}*S_{k}\quad{for}\quad i}} = {\left. 0 \right.\sim 31.}}} & \left( {{Equation}\quad 7} \right)\end{matrix}$

The relation between V″_(i) and S_(k) in Equation 7 is equivalent toperforming 32-points DCT on S_(k) to generate V″_(i). Hence, the 32vectors V″_(i) can represent the vectors V_(i).

The following paragraph will explain the details of step S22, S23, andS24.

In the MPEG-1 Layer im standard, the synthesis equation is originallydefined as: $\begin{matrix}{{S_{j} = {{\sum\limits_{i = 0}^{15}{U_{j + {32i}}*D_{j + {32i}}\quad{for}\quad j}} = {\left. 0 \right.\sim 31}}},} & \left( {{Equation}\quad 8} \right)\end{matrix}$

wherein S_(j) is the PCM signal to be finally generated, U represents afirst intermediate vector, D represents the window coefficient providedin the MPEG-1 Layer III standard, and i is an integer index ranging from0 to 15.

Based on the odd/even property of i, Equation 8 can be re-written asEquation 9: $\begin{matrix}{S_{j} = {{\sum\limits_{{i = 0},2,4,\ldots\quad,14}{U_{j + {32i}}*D_{j + {32i}}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}{U_{j + {32i}}*{D_{j + {32i}}.}}}}} & \left( {{Equation}\quad 9} \right)\end{matrix}$

According to the MPEG-1 Layer III specification, the relationshipbetween the first intermediate vector U and the 64 vectors V_(i) is:$\begin{matrix}\left\{ {\begin{matrix}{U_{{64w} + j} = V_{{128w} + j}} \\{U_{{64w} + 32 + j} = V_{{128w} + 96 + j}}\end{matrix},} \right. & \left( {{Equation}\quad 10} \right)\end{matrix}$

wherein w is an integer index ranging from 0 to 7.

Respectively setting i=2w and i=2w+1 for the two relations in Equation10, the relationship between the first intermediate vector U and the 64vectors V_(i) can be re-written as: $\begin{matrix}\left\{ \begin{matrix}{U_{{32i} + j} = V_{{64i} + j}} & {{{{for}\quad i} = 0},2,4,\ldots\quad,14,} \\{U_{{32i} + j} = V_{{64i} + 32 + j}} & {{{{for}\quad i} = 1},3,5,\ldots\quad,15,}\end{matrix} \right. & \left( {{Equation}\quad 11} \right)\end{matrix}$

Based on Equation 11, Equation 9 can be written as: $\begin{matrix}{S_{j} = {{\sum\limits_{{i = 0},2,3,4,\ldots\quad,14}^{\quad}{V_{j + {64i}}*D_{j + {32i}}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}\quad{V_{j + 32 + {64i}}*D_{j + {32i}}}}}} & \left( {{Equation}\quad 12} \right)\end{matrix}$

Based on Equation 12, the Vi respectively corresponding to S₁ and S₃₁are listed as following:

The Vi corresponding to even i in S_(i):

V₁, V₁₂₈₊₁, V₂₅₆₊₁, V₃₈₄₊₁, V₅₁₂₊₁, V₆₄₀₊₁, V₇₆₈₊₁, V₈₉₆₊₁

The V_(i) corresponding to odd i in S₁:

V₆₄₊₃₂₊₁, V₁₉₂₊₃₂₊₁, V₃₂₀₊₃₂₊₁, V₄₄₈₊₃₂₊₁, V₅₇₆₊₃₂₊₁, V₇₀₄₊₃₂₊₁,V₈₃₂₊₃₂₊₁, V₉₆₀₊₃₂₊₁

The V_(i) corresponding to even i in S₃₁:

V₃₁, V₁₂₈₊₃₁, V₂₅₆₊₃₁, V₃₈₄₊₃₁, V₅₁₂₊₃₁, V₆₄₀₊₃₁, V₇₆₈₊₃₁, V₈₉₆₊₃₁

The V_(i) corresponding to odd i in S₃₁:

V₆₄₊₃₂₊₃₁, V₁₉₂₊₃₂₊₃₁, V₃₂₀₊₃₂₊₃₁, V₄₄₈₊₃₂₊₃₁, V₅₆₇₊₃₂₊₃₁, V₇₀₄₊₃₂₊₃₁,V₈₃₂₊₃₂₊₃₁,V₉₆₀₊₃₂₊₃₁

Based on the symmetric property of DCT, the relationship between V″_(i)and V_(i) can be written as: $\begin{matrix}\left\{ \begin{matrix}{V_{i}^{''} = {- V_{i + 48}}} & {i = {\left. 0 \right.\sim 15}} \\{V_{i}^{''} = {- V_{48 - i}}} & {i = {\left. 0 \right.\sim 31}} \\{V_{i}^{''} = V_{i - 16}} & {i = {\left. 16 \right.\sim 31}}\end{matrix} \right. & \left( {{Equation}\quad 13} \right)\end{matrix}$

Based on Equation 13, the V″_(i) respectively corresponding to S₁ andS₃₁ are listed as following:

The V″_(i) corresponding to even i in S₁:

V″₁₇, V″₆₄₊₁₇, V″₁₂₈₊₁₇, V″₁₉₂₊₁₇, V″₂₅₆₊₁₇, V″₃₂₀₊₁₇, V″₃₈₄₊₁₇,V″₄₄₈₊₁₇

The V″_(i) corresponding to odd i in S₁:

−V″₃₂₊₁₅, −V″₉₆₊₁₅, −V″₁₆₀₊₁₅, −V″₂₂₄₊₁₅, −V″₂₈₈₊₁₅, −V″₃₅₂₊₁₅,−V″₄₁₆₊₁₅, −V″₄₈₀₊₁₅

The V″_(i) corresponding to even i in S₃₁:

−V″₁₇, −V″₆₄₊₁₇, −V″₁₂₈₊₁₇, −V″₁₉₂₊₁₇, −V″₂₅₆₊₁₇, −V″₃₂₀₊₁₇, −V″₃₈₄₊₁₇,−V″₄₄₈₊₁₇

The V″_(i) corresponding to odd i in S₃₁:

−V″₃₂₊₁₅, −V″₉₆₊₁₅, ″V″₁₆₀₊₁₅, −V″₂₂₄₊₁₅, −V″₂₈₈₊₁₅, −V″₃₅₂₊₁₅,−V″₄₁₆₊₁₅, −V″₄₈₀₊₁₅

After analyzing the V″_(i) in S₁ and S₃₁, the inventor find out that forS₁ and S₃₁, the V″_(i) corresponding to odd i is the same and the V″_(i)corresponding to even i are the same except a negative sign. Similarly,the V″_(i) in S_(j) and S_((32−j)) (j=1˜15) has the unique relation,too. Hence, a set of equations can be summarized as: $\begin{matrix}{{S_{j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{V_{{32i} + 16 + j}^{''}*D_{{32i} + j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + j}\quad{for}\quad j}}} = {\left. 1 \right.\sim 15}}}{{S_{32 - j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{\left( {- V_{{32i} + 16 + j}^{''}} \right)*D_{{32i} + 32 - j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + 32 - j}\quad{for}\quad j}}} = {\left. 1 \right.\sim 15}}},}} & \left( {{Equation}\quad 14} \right)\end{matrix}$

wherein i andj are both integer indexes ranging from 0 to 15.

After analyzing S₀ and S₁₆, another set of equations can be summarizedas: $\begin{matrix}\begin{matrix}{S_{0} = {{\sum\limits_{{i = 0},2,4,\ldots\quad,14}{V_{{32i} + 16}^{''}*D_{32i}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16}^{''}} \right)*D_{32i}}}}} \\{S_{16} = {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{32i}^{''}} \right)*D_{{32i} + 16}}}}\end{matrix} & \left( {{Equation}\quad 15} \right)\end{matrix}$

Based on Equation 14 and Equation 15, a fmal set of synthesis equationsare summarized as: $\begin{matrix}{{S_{16} = {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{32i}^{''}} \right)*D_{{32i} + 16}}}},{S_{j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{V_{{32i} + 16 + j}^{''}*D_{{32i} + j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + j}\quad{for}\quad j}}} = {\left. 0 \right.\sim 15}}},{S_{32 - j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{\left( {- V_{{32i} + 16 + j}^{''}} \right)*D_{{32i} + 32 - j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + 32 - j}\quad{for}\quad j}}} = {\left. 1 \right.\sim 15}}},} & \left( {{Equation}\quad 16} \right)\end{matrix}$

wherein i andj are both integer indexes ranging from 0 to 15.

Based on the synthesis equations (Equation 16) proposed in thisinvention, there is no need of calculating the first intermediatevectors and the second intermediate vectors as in the prior arts. Hence,the synthesis subband filter process and apparatus according to thesynthesis equations above are simpler than prior arts; thus, calculatingtime and hardware resources can be reduced in this invention.

Besides, the inventor of this invention also summarizes the relationshipof the 512 window coefficients as: D_((512−k))=−D_(k), wherein k is aninteger index ranging from 1 to 255. With this symmetric relationship,the memory space for storing the window coefficients can be reduced ashalf of that in prior arts.

The vector V″_(i) is stored in a buffer. Based on Equation 16, theV″_(i) corresponding to the PCM signals Sand S_(32−j) (j=1˜15) are thesame except positive/negative signs. Thus, simultaneously calculatingS_(j) and S_(32−j) can reduce the frequency of accessing the V″_(i) fromthe buffer.

Based on the relation of D_((512−k))=−D_(k), the only differencesbetween the two sets of window coefficients D for generating the PCMsignals S_(j) and S_(32−j) (j=1˜15) are arrangement sequences andpositive/negative signs. If S_(j) and S_(32−j) are calculatedsimultaneously, the frequency of accessing the window coefficients canalso be half reduced.

The volume of the buffer for storing V″_(i) can be equal to 512 V″_(i)or 256 V″_(i). The vectors stored in the buffer are called defaultvectors. According to the MPEG-1 Layer III standard, whenever a set ofsubband sampling signals is converted into 32 converted vectors V″_(i),the 32 converted vectors V″_(i) must be written into the buffer with afirst-in, first-out (FIFO) principle. In the prior arts, when a newV″_(i) is going to be written into the buffer, the vectors originallystored in the buffer must be shifted backward so as to conform to theFIFO principle. To prevent from massively memory shifting, thisinvention proposes a buffer with a rotating index based on the synthesisequations (Equation 16). In the buffer with a rotating index, thepositions for storing default vectors are fixed. The process andapparatus according to this invention change the sequence of accessingthe default vectors instead of shifting the default vectors.

Please refer to FIG. 3. FIG. 3 illustrates the operation of the bufferwith a rotating index. In this example, the buffer is assumed as capableof storing 512 V″_(i).

The buffer is divided into a first sub-buffer and a second sub-buffer.The 32 default vectors relative to the s^(th) set of signals among the18 sets of signals are stored in the first sub-buffer, if s is an oddnumber, or in the second sub-buffer, if s is an even number, wherein sis an integer index ranging from 1 to 18. For example, the 32 defaultvectors relative to the 1^(st), 3^(rd), 5^(th), 7^(th), 9^(th), 11^(th),13^(th), 15^(th), and 17^(th) set of signals among the 18 sets ofsignals are stored in the first sub-buffer. And, the 32 default vectorsrelative to the 2^(nd), 4^(th), 6^(th), 8^(th), 10^(th), 12^(th),14^(th), 16^(th), and 18^(th) set of signals among the 18 sets ofsignals are stored in the second sub-buffer.

The first sub-buffer and the second sub-buffer have eight sections,respectively. Each section is used for storing 32 default vectors amongthe 512 default vectors. The 32 default vectors among the 512 defaultvectors relative to the s^(th) set of signals among the 18 sets ofsignals are stored in the y^(th) section of the first sub-buffer where yequals [(s+1) mod 16]/2, or in the y^(th) section of the secondsub-buffer where y equals [s mod 16]/2, wherein y is an integer indexranging from 1 to 8. For instance, The 32 default vectors (V″_(—)1)among the 512 default vectors relative to the 1^(st) set of signalsamong the 18 sets of signals are stored in the first section of thefirst sub-buffer. The 32 default vectors (V″_(—)4) among the 512 defaultvectors relative to the 4^(th) set of signals among the 18 sets ofsignals are stored in the second section of the second sub-buffer.

When the 32 PCM signals relative to the s^(th) set of signals among the18 sets of signals are processed and the 512 default vectors arerequested to be accessed, the eight sections in the first sub-buffer areaccessed as the following sequence: x^(th), (x−1) ^(th), . . . , 1^(st),8^(th), 7^(th), . . . , (x+1)^(th), wherein x equals [(s+1) mod 16]/2.The eight sections in the second sub-buffer will be accessed as thefollowing sequence: x^(th), (x−1)^(th), . . . , 1^(st), 8^(th), 7^(th),. . . , (x+1)^(th), wherein x equals [s mod 16]/2, as the 32 PCM signalsare processed and the 512 default vectors are requested to be accessed.

Please refer to FIG. 4. FIG. 4 is the block diagram of the synthesissubband filter apparatus according to one preferred embodiment of thisinvention. The synthesis subband filter apparatus 40 includes aprocessor 401 for processing the 18 sets of signals in sequence. Asshown in FIG. 4, the processor 401 further includes a converting module401A, a generating module 401B, and a buffer 401C.

The converting module 401A converts the 32 subband sampling signals ofthe set of signals 41 into 32 converted vectors by use of 32-points DCT(Equation 7), The converting module 401A also writes the 32 convertedvectors into 512 default vectors (V″₀˜V″₅₁₁) in the buffer 401C with afirst-in, first-out queue.

The buffer 401C connects with the converting module 401A and thegenerating module 401B, respectively. The buffer 401C includes a firstsub-buffer and a second sub-buffer as described above, the 32 defaultvectors relative to the s^(th) set of signals among the 18 sets ofsignals are stored in the first sub-buffer, if s is an odd number, or inthe second sub-buffer, if s is an even number, and s is an integer indexranging from 1 to 18. Based on Equation 16 and the 512 default vectors(V″₀˜V″₅₁₁) in the buffer 401C, the generating module 401B generates the32 PCM signals (S₀˜S₃₁) 42 relative to the set of signals beingprocessed.

The principle of the synthesis subband filter apparatus 40 is the sameas the flowchart shown in FIG. 2; thus, how the synthesis subband filterapparatus 40 operates is not further explained.

Similarly, in actual applications, the buffer 401C in the synthesissubband filter apparatus 40 can be a buffer with a rotating index asdescribed above.

With the example and explanations above, the features and spirits of theinvention will be hopefully well described. Those skilled in the artwill readily observe that numerous modifications and alterations of thedevice may be made while retaining the teaching of the invention.Accordingly, the above disclosure should be construed as limited only bythe metes and bounds of the appended claims.

1. A synthesis subband filter process for 18 sets of signals which eachcomprises 32 subband sampling signals, the subband sampling signalsbeing in accordance with a specification providing 512 windowcoefficients (D₀˜D₅₁₁), said process comprising the steps of: (a)sequentially processing said 18 sets of signals, and performing thefollowing steps for said set of signals being processed: (a-1) by use of32-points discrete cosine transform (DCT), converting said 32 subbandsampling signals into 32 converted vectors and writing said 32 convertedvectors into 512 default vectors (V″₀˜V″₅₁₁) with a first-in, first-outqueue; and (a-2) generating 32 pulse code modulation (PCM) signals(S₀˜S₃₁) according to the 512 default vectors (V″₀˜V′₅₁₁), thespecification and the following formulae: $\begin{matrix}{{{S_{16} = {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{32i}^{''}} \right)*D_{{32i} + 16}}}},{S_{j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{V_{{32i} + 16 + j}^{''}*D_{{32i} + j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + j}\quad{for}\quad j}}} = {\left. 0 \right.\sim 15}}},\quad{and}}{{S_{32 - j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{\left( {- V_{{32i} + 16 + j}^{''}} \right)*D_{{32i} + 32 - j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + 32 - j}\quad{for}\quad j}}} = {\left. 1 \right.\sim 15}}},}} & \quad\end{matrix}$ wherein i andj are both integer indexes ranging from 0 to15.
 2. The process of claim 1, wherein the specification is MPEG-1 LayerIII standard.
 3. The process of claim 1, wherein the 512 windowcoefficients meet the following relationship:D _((512−k))=−D_(k), wherein k is an integer index ranging from 1 to255.
 4. The process of claim 1, wherein the 512 default vectors arestored in a buffer divided into a first sub-buffer and a secondsub-buffer, the 32 default vectors relative to the s^(th) set of signalsamong the 18 sets of signals are stored in the first sub-buffer, if s isan odd number, or in the second sub-buffer, if s is an even number, ands is an integer index ranging from 1 to
 18. 5. The process of claim 4,wherein the first sub-buffer and the second sub-buffer have eightsections, respectively, each section is used for storing 32 defaultvectors among the 512 default vectors, the 32 default vectors among the512 default vectors relative to the s^(th) set of signals among the 18sets of signals are stored in the y^(th) section of the first sub-bufferwhere y equals [(s+1) mod 16]/2, or in the y^(th) section of the secondsub-buffer where y equals [s mod 16]/2, wherein y is an integer indexranging from 1 to
 8. 6. The process of claim 5, wherein when the 32pulse code modulation (PCM) signals relative to the s^(th) set ofsignals among the 18 sets of signals are processed and the 512 defaultvectors are requested to be accessed in step (a-2), the first accessedsection is one of the y^(th) section of the first sub-buffer and they^(th) section of the second sub-buffer.
 7. The process of claim 6,wherein the eight sections of the first sub-buffer and the secondsub-buffer are accessed respectively in the following sequence:y^(th), (y−1)^(th), . . . , 1^(st), 8^(th), 7^(th), . . . , (y+1)^(th).8. A synthesis subband filter apparatus for 18 sets of signals whicheach comprises 32 subband sampling signals in accordance with aspecification providing 512 window coefficients (D₀˜D₅₁₁), saidapparatus comprising: a processor for processing said 18 sets of signalsin sequence, the processor further comprising: a converting module forconverting the 32 subband sampling signals of said set of signals beingprocessed into 32 converted vectors by use of 32-points discrete cosinetransform (DCT), and writing said 32 converted vectors into 512 defaultvectors (V″₀˜V″₅₁₁) with a first-in, first-out queue; and a generatingmodule for generating 32 pulse code modulation (PCM) signals (S₀˜S₃₁)relative to said set of signals being processed according to the 512default vectors (V″₀˜V″₅₁₁), the specification and the followingformulae:${S_{16} = {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{32i}^{''}} \right)*D_{{32i} + 16}}}},{S_{j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{V_{{32i} + 16 + j}^{''}*D_{{32i} + j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + j}\quad{for}\quad j}}} = {\left. 0 \right.\sim 15}}},\quad{and}$${S_{32 - j} = {{{\sum\limits_{{i = 0},2,4,\ldots\quad,14}^{\quad}{\left( {- V_{{32i} + 16 + j}^{''}} \right)*D_{{32i} + 32 - j}}} + {\sum\limits_{{i = 1},3,5,\ldots\quad,15}^{\quad}{\left( {- V_{{32i} + 16 - j}^{''}} \right)*D_{{32i} + 32 - j}\quad{for}\quad j}}} = {\left. 1 \right.\sim 15}}},$wherein i and j are both integer indexes ranging from 0 to
 15. 9. Theapparatus of claim 8, wherein the specification is MPEG-1 Layer IIIstandard.
 10. The apparatus of claim 8, wherein the 512 windowcoefficients meet the following relationship:D _((512−k))=−D_(k), wherein k is an integer index ranging from 1 to255.
 11. The apparatus of claim 8, wherein the processor furthercomprises a buffer connected with the converting module and thegenerating module respectively, the 512 default vectors are stored inthe buffer including a first sub-buffer and a second sub-buffer, the 32default vectors relative to the s^(th) set of signals among the 18 setsof signals are stored in the first sub-buffer, if s is an odd number, orin the second sub-buffer, if s is an even number, and s is an integerindex ranging 5 from 1 to
 18. 12. The apparatus of claim 11, wherein thefirst sub-buffer and the second sub-buffer have eight sections,respectively, each section is used for storing 32 default vectors amongthe 512 default vectors, the 32 default vectors among the 512 defaultvectors relative to the s^(th) set of signals among the 18 sets ofsignals are stored in the y^(th) section of the first sub-buffer where yequals [(s+1) mod 16]/2, or in the y^(th) section of the secondsub-buffer where y equals [s mod 16]/2, wherein y is an integer indexranging from 1 to
 8. 13. The apparatus of claim 12, wherein when the 32pulse code modulation (PCM) signals relative to the s^(th) set ofsignals among the 18 sets of signals are processed and the 512 defaultvectors are requested to be accessed by the generating module, the firstaccessed section is one of the y^(th) section of the first sub-bufferand the y^(th) section of the second sub-buffer.
 14. The apparatus ofclaim 13, wherein the eight sections of the first sub-buffer and thesecond sub-buffer are accessed respectively in the following sequence:y^(th), (y−1)^(th), . . . , 1^(st), 8^(th), 7^(th), . . . , (y+1)^(th).